Method of interpolation in an n-dimensional color space

ABSTRACT

In a method for interpolating color values with a view to converting an initial color space into an output color space, the initial color space is divided into a multidimensional network. For grid points, converted components of the output color space are prescribed as interpolation nodes. The converted components, located between the grid points are obtained by interpolating said nodes. For the purpose of interpolation, the components of an initial color to be interpolated are broken down in a multiple of the grid point spacing and a remainder, and the remaining values are classified by order of magnitude. At the grid points of a sub-space comprising the initial color to be interpolated, the interpolation nodes are selected in a series determined by the classification of the remaining values, and the initial color is interpolated based on the selection of interpolation nodes. The inventive method can be used without significantly increasing the calculation work for the initial grid space and the output color space with any number of dimensions.

BACKGROUND OF THE INVENTION

The invention is in the field of electronic production technology and isdirected to a method for interpolation of color values for color spacetransformation from an input color space into an output color space.

In reproduction technology, print masters for printed pages are producedthat contain all elements to be printed such as texts, graphics andimages. In the case of electronic production of print masters, theseelements are present in the form of digital data. The data for an imageare generated, for example, in that the image is scanned point-by-pointand line-by-line in a scanner, each picture element is resolved intocolor components, and the color components are digitized. Usually,images are resolved into the color components red, green and blue (RGB)in a scanner, i.e. into the components of a three-dimensional colorspace. However, other color components are required for color printing.These are the inks cyan, magenta, yellow and black (C, M, Y, K) givenfour-color printing, i.e. the components of a four-dimensional colorspace. In special instances such as packaging printing, even more inkscan be added, for example gold, silver, chocolate brown, etc. For printswith especially high quality (high fidelity printing), for example,seven inks are employed (C, M, Y, K, R, G, B), i.e. the image data mustbe transformed into a seven-dimensional color space.

Such color space transformations are required in reproduction technologybecause there are different color spaces for different devices such asscanner, monitor, proof output, printing machine, etc., these differentcolor spaces respectively optimally describing the color properties ofthe device. All devices have their limitations and specialcharacteristics in the presentation of the colors, and all devices haveproperties of this type that are different. The color components of thevarious color spaces are allocated to one another with a color spacetransformation, so that, for example, RGB color values that a scanneridentified are transformed into the CMYK color values of a printingprocess so that the print has the same colors as the image original.

Such an allocation can be realized with the assistance of a table memory(lookup table). When, for example, RGB color values are to betransformed into CMYK color values, the table memory must have a memorylocation for every possible value combination of the RGB colorcomponents, the allocated CMYK color components being stored therein. AnRGB image is then transformed into the CMYK color space in that the RGBcolor values of every picture element are applied to the table memory asan address and the allocated CMYK color values are read out. This simpleallocation method, however, has the disadvantage that the table memorycan be very large and, thus, expensive. When each of the RGB componentswas digitized with eight bits, i.e. has 2⁸=256 density levels, there are256³=16,777,216 possible value combinations of the RGB color components.The table memory must thus have 16,777,216 memory cells, each with a4-byte word length (one respective byte for C, M, Y, K). The tablememory thus becomes 64 M bytes large.

In order to reduce the size of the table memory, the prior art utilizesa combination of table memory and interpolation method for realizing acolor space transformation. The allocations for all possible valuecombinations of the input color components are then not stored in thetable memory; rather, only those for a coarser, regular grid of valuesin the input color space. The grid is formed in that only every k^(th)value is taken as a grid point in every component direction. For theexample of the RGB color space and for k=8, thus, every eighth value ofthe 256 possible values is taken in every components as grid point. Thegrid, accordingly, has 256/8=32 grid points in each component direction,i.e. 32×32×32=32,768 grid points for the entire color space. Theallocated components of the output color space (for example, CMYK) arestored in the table memory as supporting values for every grid point.The output values are interpolated from the neighboring supportingvalues for input color values that lie between the grid points.

The interpolation methods for the color space transformation known fromthe prior art are usually limited to three-dimensional input colorspaces such as, for example, the RGB color space. They cannot be appliedto a four-dimensional or multi-dimensional input color space such as,for example, the CMYK color space or the seven-dimensional CMYKRGB colorspace or, given an expansion to more than three dimensions, they requirea great deal more expense or, respectively, calculating time. InEuropean published application 0 487 304, all eight corner points of asub-cube in the three-dimensional L*a*b* color space are employed forthe interpolation. In European published application 0 615 379, thecolor values are likewise interpolated from all eight corner points of asub-space in the RGB color space, whereby the grid points, however, arenot equidistant, i.e. the sub-space is not cube-shaped.

In German Letters Patent 28 13 519, the cube-shaped sub-space is dividedinto 5, 6 or 24 tetrahedrons, the tetrahedron in which the point Pshould lie is determined from the spacings of the point P to beinterpolated from the sides of the sub-cube, and the color value is theninterpolated from the four corner points of this tetrahedron.

In German Published Application 42 34 985, the sub-cube of thethree-dimensional input color space is likewise divided into sixtetrahedrons and the four corner points of a tetrahedron are theninterpolated.

In U.S. Pat. No. 5,428,465, each sub-cube in the RGB color space isdivided by a diagonal parting plane into two prisms each having sixcorner points, and the color values in the inside of a prism areinterpolated from the six corner points. In the same way, the sub-cubesof a three-dimensional color space with a luminance component and twocolor difference components are divided in U.S. Pat. No. 5,504,821 intotwo prisms each having 6 corner points and the color values within aprism are interpolated from all 6 corner points.

In GB Published Application 2 053 619, the sub-cubes are divided intothree pyramids with respectively 5 corner points and the color valueswithin a pyramid are interpolated from the corner points.

In U.S. Pat. No. 5,313,314, a four-dimensional “sub-cube” having 16corner points is divided into 24 sub-members each having five cornerpoints, and the five corner points of the sub-member are theninterpolated.

In European Letters Patent 0 533 712, a general transformation from ann-dimensional into an m-dimensional color space is disclosed, wherebythe components of the input color space are imaged by pre-processingonto a three-dimensional color space, and the general n-dimensionaltransformation is thus reduced to a three-dimensional transformation.

The majority of known interpolation methods for color spacetransformation are limited to a three-dimensional input color space inthat a sub-cube is divided into a plurality of sub-members. To that end,the components of a color value to be interpolated are divided intomultiples of the edge length of a sub-cube and remainders. As a rule, aplurality of more significant bits indicates the multiple values and theremaining, low significance bits indicate the remainders. The multiplevalues of the components indicate in which sub-cube the color value tobe interpolated lies. The remainders indicate further in whichsub-member of the sub-cube the color value to be interpolated lies. Adetermination of the sub-member in which the point P to be interpolatedlies is made by extensive comparison operation of the low-significantbits, the corner points of the sub-member are determined by an addresscalculation, and the corresponding supporting values are taken from athree-dimensional grid table memory and are interpolated. The methodsare involved and involve a great number of calculating operations foreach color value of a picture element to be interpolated. An expansionof these methods to more than three dimensions is either not possible orbecomes so involved that application thereof is not economicallyfeasible.

SUMMARY OF THE INVENTION

It is therefore an object of the present invention to avoid theaforementioned limitations and disadvantages and to specify a method forinterpolation of color values for color space transformation from aninput color space into an output color space with which color spaceshaving an arbitrary number of dimensions can be transformed into oneanother.

This object is achieved by a method according to the invention whereinfor interpolation of color values for color space transformation from aninput color space into an output color space, the input color space isdivided into a multi-dimensional grid. Transformed components of theoutput color space are prescribed for grid points as supporting values.A transformed component of the output color space for input colors thatlies between the grid points are acquired by interpolation of thesupporting values. Within these method steps, the following additionalmethod steps are performed. Components of an input color to beinterpolated are divided into a multiple of grid point spacing and intoa remainder. A sub-frame is determined from the multiples of the gridpoints spacing, namely a sub-space in which the input color to beinterpolated lies and that is limited by respectively neighboring gridpoints in the components of the input color space. The remainders aresorted according to their size. Supporting values at limiting gridpoints of the sub-space are selected and sorted in a sequence, thesequence being defined by a sequence of the sorted remainders.Interpolation components are formed from the sorted remainders. Theinterpolation coefficients are operated with the sorted supportingvalues to form interpolated components of the output color space.

A simple interpolation method is employed that is not limited to threedimensions and for which the calculating expense given more than threedimensions becomes only insignificantly greater.

The invention is described in greater detail below with reference toFIGS. 1 through 8.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a three-dimensional RGB color space with a sub-cube in whichthe point P to be interpolated lies (prior art);

FIG. 2 is a block diagram of a color space transformation from RGB toCMYK with a grid table memory and an interpolation of the grid points(prior art);

FIG. 3 is a block diagram for a color space transformation from ndimensions onto m dimensions with a grid table memory and aninterpolation of the grid points;

FIG. 4 is a two-dimensional color space with grid points and supportingvalues at the grid points;

FIG. 5 is a two-dimensional color space with grid points andinterpolation planes that are respectively erected between threesupporting values;

FIG. 6 shows the interpolation on a first interpolation plane in asub-quadrant of the two-dimensional color space;

FIG. 7 shows the interpolation on a second interpolation plane in asub-quadrant of the two-dimensional color space;

FIG. 8 is a flow chart of the interpolation rule in the two-dimensionalcolor space; and

FIG. 9 is a flow chart for the interpolation rule in the n-dimensionalcolor space.

DESCRIPTION OF THE PREFERRED EMBODIMENTS

FIG. 1 shows the three-dimensional RGB color space as an example of aninput color space, whereby the component axes form a cube 1 and eachcomponent is divided into 32 grid points. Respectively 2×2×2=8 spatiallyadjacent grid points form a sub-cube 2, i.e. the color space is dividedinto 32×32×32=32,768 sub-cubes. An RGB input color P, for which thecolor space transformation is to be implemented, lies in a sub-cube. Thetransformed color values for the grid points at the corners of thesub-cube are stored in the table memory as supporting values. Thetransformed color values of the input color P are determined from theseneighboring supporting values by interpolation, whereby theinterpolation coefficients are determined in a suitable way from thedistances of the point P from the corner points of the sub-cube.

FIG. 2 shows the basic method of color space transformation with tablememory and interpolation as block diagram for an example in which theRGB color space is transformed into the CMYK color space. The RGBcomponents are first modified by one-dimensional input table memories 3,for example to adapt in terms of their value range. When the RGBcomponents are digitized, for example, with eight bits each, the inputtable memories have 256 memory locations of eight bits each (one byte).The output values 4 of the input table memory that are eight-bits wideare divided into five more-significant bits are three less-significantbits. A 15-bit wide address for the three-dimensional grid table memory5 in which the supporting values of the 32×32×32=32,768 grid points arestored is formed from the 3×5=15 more-significant bits. This addresscharacterizes the first corner point of the sub-cube 2 in which thepoint P to be interpolated lies. Four supporting values 6 correspondingto the four components of the CMYK color space are stored in the gridtable memory for each grid point and are read out in parallel. Dependenton the interpolation method employed, a supporting value 6 of furthercorner points of all corner points of the sub-cube are read out from thegrid table memory (5) and supplied to the interpolation unit (7).Parallel thereto, a nine-bit wide address for the coefficient memory (8)from which the interpolation coefficients (9) are read out and suppliedto the interpolation unit (7) is formed from the 3×3×3=9less-significant bits of the initial values (4) of the input tablememory (3). The nine-bit wide address for the coefficient memory (8)identifies the position of the point P within the sub-cube (2) and,thus, also identifies its distances from the corner points of thesub-cube. The interpolation unit (7) operates the supporting values (6)of the corner points that have been read out with the interpolationcoefficients (9) and calculates interpolated color values (10) in theCMYK color space, which can still be adapted in terms of their valuerange by one-dimensional output table memories 11. Numerous variationsof this fundamental procedure are possible dependent on which of thecalculating steps are implemented serially or in parallel.

The method of the invention for the interpolation of color values for acolor space transformation works with a grid table memory and afollowing interpolation of the grid points, as was explained in FIG. 2.The method, however, is expanded to an arbitrary plurality of dimensionsof the input color space and of the output color space.

FIG. 3 shows a block diagram for this generalized case. The componentsE1 . . . En of the n-dimensional input color space are modified viainput table memories 3. The output values (4) of the input tablememories 3 are divided into more-significant and less-significant bits.The more-significant bits are combined to form an address for then-dimensional grid table memory 5 in which supporting values (6) forgrid points regularly distributed in the n-dimensional input color spaceare stored. Respectively two grid points neighboring in each componentdirection form a smallest sub-space having 2^(n) grid points as cornerpoints. Corresponding to the m components of the output color space, msupporting values are stored for each grid point. The low-significantbits of the output values 4 are combined to form an address for thecoefficient memory (8) from which interpolation coefficients 9 are readout. Dependent on the interpolation method, the supporting values of aplurality of corner points of a sub-space in which the point P to beinterpolated lies are read out from the grid table memory and operatedin the interpolation unit 7 with the interpolation coefficients 9 toform the interpolated color values 10. The interpolated color values 10of all m output components are modified in the output table memories 11and are then output as transformed color components A1 . . . Am of theoutput color space. Numerous modifications are possible in addition tothis procedure, for example the interpolation unit can calculate theinterpolated color values 10 in chronological succession or in parallelfor all m components or the interpolation coefficients 9 are calculatedfrom the low-significant bits of the output values 4 and are not readout from the memory. A modification of the color values in the inputtable memories 3 and the output table memories 11 can also be calculatedin advance into the stored supporting values 6, and these table memoriescan then be omitted. It is also possible to provide a separate gridtable memory 5 and a separate interpolation unit 7 for each component ofthe output color space. All of these versions, however, do not changethe basic procedure that supporting values 6 in a multi-dimensional gridtable memory (5) are addressed with the more-significant bits of theinput components, that interpolation coefficients 9 are acquired fromthe low-significant bits of the input components, and that output colorvalues are interpolated from the supporting values 6 at a plurality ofcorner points of a sub-space.

The inventive interpolation method is described and illustrated firstwith reference to the example of a two-dimensional color space since itcan no longer be graphically shown for more than two dimensions. It isthen expanded later to an arbitrary number of dimensions of the inputcolor space. The number of dimensions of the output color space has noinfluence on the fundamental execution of the interpolation method sincethe interpolation is implemented separately for each component of theoutput color space. The number of output components only influences thenumber of supporting values stored per grid point in the grid tablememory and the number of identical interpolations to be implemented inparallel or successively. The inventive interpolation method istherefore explained here only for one output component.

FIG. 4 shows a two-dimensional color space having the components x and ythat are shown in a plane. The value range of both components is dividedinto sections of respectively k steps after which respectively one gridpoint is provided. When the entire value range of the componentscomprises, for example, 256 digital steps and k=8 is selected, 256/8=32grid points derive per component. The two-dimensional color plane isthen divided into 32×32=1024 grid points (Xi, Yj). Respectively 2×2neighboring grid points form a sub-quadrant. A grid table memory 5having 1024 memory locations would thus be required. One supportingvalue for each grid point is stored therein. The supporting values areshown in FIG. 4 as function values V_(ij) of different heights.

An interpolated output component V_(P) is to be calculated for an inputcolor value at the point P having the components x(P) and y(P). To thatend, the sub-quadrant (ABCD) in which the point P to be interpolatedlies is identified first. The components x(P) and y(P) are split into amultiple of k and a remainder:

 x(P)=XA×k+fx  (1a)

y(P)=YA×k+fy  (1b)

The multiple values XA and YA identify the grid point A in thesub-quadrant (ABCD); the remainders fx and fy identify the position ofthe point P within the sub-quadrant (ABCD). The multiple values XA andYA can, for example, be acquired from the more-significant bits of thecomponents x(P) and y(P), and the remainder values fx and fy can beacquired from the low-significant bits of these components. In the aboveexample with k=8 and 256 steps per component, the five more-significantbits of x(P) and y(P) correspond to the multiple values xa and ya, andthe three low-significant bits correspond to the remainders fx and fy.

The address of the grip point A in the grip table memory 5 derives fromthe multiple values XA and YA on the basis of an address calculationthat is dependent on the memory organization. According to a standardmemory organization and for the above example of 32 grid points percomponent, for example, the grid points on the x-axis are allocated tothe memory addresses 0 . . . 31, the grid points that lie parallelthereto at the y-distance of k steps are allocated to the memoryaddresses 32 . . . 63, the grid points in the y-distance of 2×k stepsare allocated to the memory addresses 64 . . . 95, etc. Given thismemory organization, the addresses of the corner points of thesub-quadrant (ABCD) derive from:

Address A=YA×32+XA  (2a)

Address B=YA×32+(XA+1)  (2b)

Address C=(YA+1)×32+XA  (2c)

Address D=(YA+1)×32+(XA+1)  (2d)

The addresses of all corner points of the sub-quadrant (ABCD) can thusbe calculated in a simple way from the multiple values XA and YA.

An interpolation method that is linear in x-direction and y-direction isinventively employed for calculating the interpolated output valueV_(P). To that end, the sub-quadrant (ABCD) is divided into twotriangles (ABD) and (ACD) by a diagonal parting line, and a respectiveinterpolation plane is erected between the supporting values at thecorner points of the triangles.

FIG. 5 shows the triangular interpolation planes between the supportingvalues. Dependent on whether the point P lies in the triangle (ABD) orin the triangle (ACD), the output value V_(P) is interpolated in thecorresponding interpolation plane.

FIG. 6 illustrates the calculation of the output value V_(P) for thatcase wherein the point P lies in the triangle (ABD). The interpolationplane (12) is erected between the supporting values V_(A), V_(B) andV_(D). The position of the point P with reference to the corner point Ais identified by the remainders fx and fy. First, an intermediate valueV_(XP) is interpolated in x-direction at the distance fx from the pointA, i.e. at the point X_(P). The output value V_(P) is then interpolatedin y-direction proceeding from the point X_(P) at the distance fy. Ascan be seen from FIG. 6, the following relationships are valid:

V _(XP) =V _(A) +dx  (3a)

V _(P) =V _(XP) +dy=V _(A) +dx+dy  (3b)

The delta values dx derives from the supporting values V_(A) and V_(B)and from the relationship fx to k:

dx=(V _(B) −V _(A))×fx/k  (4)

What is valid for the delta values dy is that it has the same value onthe line X_(P) . . . P as on the line B . . . D since the interpolationplane 12 has the same slope everywhere in y-direction. Therefore, dyderives as:

dy=(V _(D) −V _(B))×fy/k  (5)

After the insertion of relationships 4 and 5 into the relationship (3b)one obtains the following for the interpolated output value V_(P):

V _(P)=1/k×{V _(A) ×k+(V _(B) −V _(A))×fx+(V _(D) −V _(B))×fy}  (6a)

V _(P)=1/k×{V _(A)×(k−fx)+V _(B)×(fx−fy)+V _(D) ×fy}  (6b)

FIG. 7 shows the calculation of the interpolated output value V_(P) forthat case wherein the point P lies in the triangle (ACD), i.e. theinterpolation occurs on the interpolation plane 13. An intermediatevalue V_(YP) is then interpolated first in y-direction at the distancefy, i.e. at the point Y_(P), and the output value V_(P) is subsequentlyinterpolated at the distance fx in x-direction proceeding from Y_(P). Inthis case, V_(P) derives as:

V _(P) =V _(A) +dy+dx  (7)

Valid for the delta values dy and dx are:

dy=(V _(C) −V _(A))×fy/k  (8a)

dx=(V _(D) −V _(C))×fx/k  (8b)

In this case, too, the delta values dx can be calculated on the line C .. . D and can then be transferred onto the line Y_(P) . . . P since theslope of the interpolation plane 13 is the same everywhere inx-direction. By insertion of the relationships (8a) and (8b) into therelationship 7, one obtains the following for the interpolated outputvalue V_(P):

V _(P)=1/k×{V _(A) ×k+(V _(C) −V _(A))×fy+(V _(D) −V _(C))×fx}  (9a)

V _(P)=1/k×{V _(A)×(k−fy)+V _(C)×(fy−fx)+V _(F) ×fx}  (9b)

The two instances that have been set forth, that the point P lies in thetriangle (ABD) or, respectively, in the triangle (ACD), can be combinedto form a generally valid interpretation rule. The triangle in which thepoint lies is dependent on the size of the remainders fx and fy:

fx≧fy: P lies in the triangle (ABD)  (10a)

fy≧fx: P lies in the triangle (ACD)  (10b)

When the greater of the remainders is generally referenced as fgr andthe smaller is referenced as fkl

fgr=greater value of (fx, fy)  (11a)

fkl=smaller value of (fx, fy)  (11b)

and when the supporting value that neighbors V_(A) in the direction offgr is referenced V_(gr) and the supporting value that neighbors V_(gr)in the direction of fkl is referenced V_(kl), then the relationships(6b) and (9b) can be combined to form an interpolation rule:

V _(P)=1/k×{V _(A)×(k−fgr)+V _(gr)×(fgr−fkl)+V _(kl) ×fkl}  (12)

Of course, the interpolation rule can also be formulated on the basis ofthe relationships (6a) and (9a) or on the basis of further relationshipsderived therefrom by mathematical transformations.

FIG. 8 shows this generalized interpretation rule again as a flow chart.In the first step 14, a variable Interpol is set to 0 in whichsub-values of the interpolation are summed up. In Step 15, the gridpoint distance k and the remainders fx and fy are sorted according todescending size and are written into an array f[1 . . . 3]. In Step 16,the supporting value V_(A) and two further supporting values of thesub-quadrant (ABCD) are written into an array V[1 . . . 3]. Thesupporting values are thereby sorted in the sequence that is prescribedby the remainders in the array f[1 . . . 3], and are sorted according todescending size. V_(A) is written into the position V[1], the supportingvalue that, proceeding from V[1] neighbors in the direction of theremainder located in f[2] is written into the position V[2], and thesupporting value that, proceeding from V[2], neighbors in the directionof the remainder located in f[3] is written into the position V[3]. Whatthe expression “in the direction of the remainder located in f[i] meansis: in the direction of the component of the color space to which theremainder f[i] belongs. A loop operation for the running variables i=1 .. . 2 is implemented in the step 17, i.e. it is implemented twice inthis case. A coefficient is calculated from the array values f[i] andf[i+1], is subsequently multiplied by the supporting value V[i] and theresult is added to the previous value for Intpol. In the last step 18,finally, the last values f[3] and V[3] from the arrays are alsomultiplied, added to Intpol and divided by k. The result is the valueV_(P).

This general interpolation method can now be expanded for ann-dimensional color space. For a color space having n components of 256steps each and a grid point spacing k steps, one obtains a supportingvalue grid with (256/k)^(n) grid points. A sub-space in which the pointP to be interpolated is located then has 2^(n) corner points. Theposition of the sub-space derives from the splitting of the componentq_(s) of the point P into a multiple of k and into a remainder.

q _(s)(P)=QA _(s) ×k+f _(s) (s=1 . . . n)  (13)

The corner point A at the origin of the sub-space is identified by themultiple values QA_(s) and the position of the point P in the sub-spacederives from the remainders fs. When the remainders sorted according todescending size are referenced f_(g1), f_(g2), . . . f_(gn) and thesupporting values respectively neighboring in the direction of theseremainders are referenced V_(g1), V_(g2), . . . V_(n), then relationship(12) can be generalized to n dimensions:

 V _(P)=1/k×{V _(A)×(k−f _(g1))+V _(g1)×(f _(g1) −f _(g2) + . . . +V_(g(n−1))×(f _(g(n−1)) −f _(gn))+V _(gn) ×f _(gn)}  (14)

The relationship 14 describes the interpolation on an interpolation“plane” in the n-dimensional color space that proceeds through n+1corner points of the sub-space in which the point P lies.

FIG. 9 shows the interpolation rule of the n-dimensional color space asa flow chart. In the first step 19, the variable Intpol is set to zeroin which sub-values of the interpolation are summed up. In step 20, thegrid point spacing k and the remainders f_(s) are sorted according todescending size and written into an array f[1 . . . n+1]. In step 21,the supporting value V_(A) and n further supporting values of thesub-space in which the point P lies are written into an array V[1 . . .n+1]. The supporting values are thereby sorted in the sequence that ispredetermined by the sorting of the remainders in the array f[1 . . .n+1]. V_(A) is written into the position V[1], the supporting valueneighboring in the direction of the remainder located in f[2] proceedingfrom V[1] is written into the position V[2], the supporting valueneighboring in the direction of the remainder located in f[3] proceedingfrom V[2] is written into the position V[3], etc. The expression“neighboring” in the direction of the remainder located in f[i] means:in the direction of the component of the color space to which theremainder f[i] belongs. In the step 22, a loop operation is implementedfor the run variable i=1 . . . n, i.e. it is implemented n-times in thiscase. A coefficient is calculated from the array values f[i] and f[i+1},is subsequently multiplied by the supporting value V[i], and the resultis added to the previous value for Intpol. In the last step 23, finally,the last values f[n+1] and V[n+1] from the arrays are multiplied, addedto Intpol and divided by k. The result is the interpolated output valueV_(P).

Further modifications of the interpolation sequence are possible bymathematical reformulation of the relationship 14. Thus, for example,the remainders can also be sorted according to ascending size, and theselection and sorting of the sorting values can begin with thesupporting value that lies “diagonally” opposite the supporting valueV_(A) in the sub-space, i.e. that is farthest from V_(A). The selectionof the supporting values then occurs in the reverse sequence, wherebyV_(A) is selected as last supporting value.

Although various minor changes and modifications might be proposed bythose skilled in the art, it will be understood that my wish is toinclude within the claims of the patent warranted hereon all suchchanges and modifications as reasonably come within my contribution tothe art.

I claim:
 1. A method for interpolation of color values for color spacetransformation from an input color space into an output color space,whereby the input color space is divided into a multi-dimensional grid,transformed components of the output color space are prescribed for gridpoints as supporting values, and transformed components of the outputcolor space for input colors that lie between the grid points areacquired by interpolation of the supporting values, comprising the stepsof: dividing components of an input color to be interpolated into amultiple of grip point spacing and into a remainder; determining asub-frame from the multiples of the grid point spacing, namely asub-space in which the input color to be interpolated lies and that islimited by respectively neighboring grid points in the components of theinput color space; sorting the remainders according to their size;selecting and sorting supporting values at limiting grid points of thesub-space in a sequence, the sequence being defined by a sequence of thesorted remainders; forming interpolation coefficients from the sortedremainders; and operating the interpolation coefficients with the sortedsupporting values to form interpolated components of the output colorspace.
 2. The method according to claim 1 wherein a number of dimensionsof the input color space is arbitrary.
 3. The method according to claim1 wherein a number of dimensions of the output color space is arbitrary.4. The method according to claim 1 wherein the selection and sorting ofthe supporting values occurs according to component directions of thesorted remainders, whereby a supporting value at an origin of thesub-space is selected as a first supporting value; proceeding from thefirst supporting value in a direction of the component that has ahighest remainder, a supporting value at a neighboring grid point isselected as a second supporting value; proceeding from the secondsupporting value in a direction of the component that has the secondhighest remainder, a supporting value at a neighboring grid point isselected as a third supporting value; and proceeding from a penultimatesupporting value in a direction of a component that has a lowestremainder, a supporting value at a neighboring grid point is selected asa last supporting value.
 5. The method according to claim 1 wherein n+1supporting values at the neighboring grid points of the sub-space areselected for the interpolation in an n-dimensional input color space. 6.A method for interpolation of color values for color spacetransformation from an input color space into an output color space,comprising the steps of: dividing the input color space into amulti-dimensional grid; prescribing transformed components of the outputcolor space for grid points as supporting values; dividing components ofan input color to be interpolated into a multiple of grid point spacingand into a remainder; determining a sub-frame from the multiples of thegrid point spacing, namely a sub-space in which the input color to beinterpolated lies and that is limited by respectively neighboring gridpoints in the components of the input color space; sorting theremainders according to their size; selecting and sorting supportingvalues at limiting grid points of the sub-space in a sequence, thesequence being defined by a sequence of the sorted remainder; forminginterpolation coefficients from the sorted remainders; operating theinterpolation coefficients with the sorted supporting values to forminterpolated components of the output color space; and acquiringtransformed components of the output color space for input colors thatlie between the grid points by interpolation of the supporting values.